export interface IDrivesState {
  moduleDrives: Map<string, IModuleDrives>
}

export interface IModuleDrives {
  dataTypes: IDataType[]
  configDatas: IConfigData[]
  lowApiDatas: ILowApiData[]
  highApiDatas: IHighApiData[]
}

export interface IDataType {
  name: string
  value?: string
  isNew?: boolean
  values?: string[]
  type?: string
}

export interface IConfigData {
  name: string
  dataType?: IDataType
  value?: string
  type?: string
  definitionRef?: string
}

export interface ILowApiData {
  name: string
  input: Array<{
    dataType: IDataType
    name: string
  }>
  output: string
  context: string
}

export interface IHighApiData {
  name: string
  input: Array<{
    dataType: IDataType
    value: string
  }>
  output: string
  config?: IConfigData
  lowApi?: ILowApiData
  isNew: boolean
}
